home *** CD-ROM | disk | FTP | other *** search
/ Robotics & Artificial Int…3 (Professional Edition) / Robotics & Artificial Intelligence Tools 2003 (Professional Edition).iso / robot software / webots-kros-1.0.1_setup.exe / {app} / kteam / etc / PICIFY.awk < prev   
Text File  |  2002-05-08  |  2KB  |  80 lines

  1. # Convert GCC Assembler Output done with -fPIC under gcc 2.95.2 
  2. # from shared library PIC to embedded Position Independent 
  3. # Code & Data
  4. # Copyright (C) 2000 K-Team S.A.
  5.  
  6. # Initialize the array of static
  7. #BEGIN {si=1;}
  8.  
  9. # Look for static variables .comm
  10. #(match($1,".comm"))\
  11. #{
  12. #  print $0;
  13. #  split($2,def,/,/);
  14. #  statics[si]=def[1];
  15. #  si++;
  16. #  next;
  17. #}
  18.  
  19. # Change bsr LABEL@PLTPC in bsr.l LABEL@PLTPC
  20. (match($2,"@PLTPC"))&&($1=="bsr") {print "\tbsr.l",$2;next;}
  21.  
  22. # Suppress lea (%pc, _GLOBAL_OFFSET_TABLE_@GOTPC), %a5  
  23. #(match($3,"@GOTPC"))&&($1=="lea") {;next;}
  24.  
  25. # Transform @GOT(%a5) statements
  26. #index($2,"@GOT(%a5)")\
  27. # {
  28. #  ins1 = $1;
  29. #  ops1 = $2;
  30. #  split(ops1,op1,/,/);
  31. #  src1 = op1[1];
  32. #  dest1 = op1[2];
  33. #  for (stat in statics)
  34. #   {
  35. #    if (index(src1,statics[stat]))
  36. #     {
  37. #      sub(/@GOT.%a5./,"(%a5)",src1);
  38. #      print ins1,src1,",",dest1;
  39. #      next;
  40. #     }
  41. #   }
  42. #  if (index(dest1,"%sp"))
  43. #   {
  44. #    # Transform move.l LABEL@GOT(%a5),%sp in pea%pc@(LABEL)
  45. #    sub(/@GOT.%a5./,")",src1);
  46. #    print "\tpea","%pc@(",src1;
  47. #   }
  48. #  else if (index(dest1,"%d"))
  49. #   {
  50. #    # Transform xxx LABEL@GOT(%a5),%dx in pea%pc@(LABEL) + xxx %sp@+,%dx
  51. #    sub(/@GOT.%a5./,")",src1);
  52. #    print "\tpea","%pc@(",src1;
  53. #    print "\t",ins1,"%sp@+,",dest1;
  54. #   }
  55. #  else if (index(dest1,"(%a"))
  56. ##   {
  57.     # Transform xxx LABEL@GOT(%a5),y(%ax) in pea%pc@(LABEL) + xxx %sp@+,y(%ax)
  58.     # Pb de deplacement de a7 qd y=sp (aka a7)
  59. #    sub(/@GOT.%a5./,")",src1);
  60. #    print "\tpea","%pc@(",src1;
  61. #    print "\t",ins1,"%sp@+,",dest1;
  62. #   }
  63. #  else if (index(dest1,"%a"))
  64. #   {
  65. #    # Transform xxx.l LABEL@GOT(%a5),%ax in xxx%pc@(LABEL),%ax
  66. #    sub(/@GOT.%a5./,")",ops1);
  67. #    print "\t",ins1,"%pc@(",ops1;
  68. #   }
  69. #  else 
  70. #   {
  71. #    print $0;
  72. #   }
  73. #  next;
  74. # }
  75.  
  76. # Any other just print unchanged
  77. {print $0}
  78.  
  79.  
  80.